Because of the ever-increasing design complexity of electronic products, the capabilities of the EDA programs (tools) used in the design process become ever more important in reducing the cost and development cycles of such products. For example, the capabilities of EDA tools may be key in helping a user/designer to evaluate early in the design process how the circuitry of a given design can be mapped to, and placed on, a given target device. Such EDA tool capabilities become even more important when an electronic design needs to be implemented on a device (e.g., such as a system-on-chip) with programmable interconnects that can carry digital and/or analog signals between arbitrary or nearly arbitrary sets of hardware element terminals and/or input/output pins.
For example, a programmable interconnect of a device may include a large number of traces and switches that can be programmed (e.g., in the firmware of the device) to implement a large number of routes between various design components. However, while a large number of traces and switches produces a more flexible interconnect, it also increases the complexity faced by the user/designer when mapping a particular design to the hardware elements of a programmable target device. Thus, in order to find an optimal mapping for the design, during the design process a user/designer should be able to quickly find and evaluate multiple different routes that can be programmed for any given design component placed on the target device.